--[[ 编码: WMS-16-10 名称: 盘点计划-查询自定义表单-初始化 作者:HAN 日期:2025-1-29 级别:固定 (说明本段代码在项目中不太会变化) 函数: InitialQueryPanel 功能: -- 获取当前登录人员的【工厂】中的工厂标识,初始化【仓库】中的下拉框里内容 -- 默认设置盘点类型为 货物盘点 -- 查询输入界面 隐藏 Layout_Location 和 Layout_cntr_code 更改记录: -- V2.0 HAN 20240617 隐藏 Layout_Location -- V2.1 HAN 20240618 隐藏 Layout_cntr_code --]] wms_base = require("wms_base") function InitialQueryPanel(strLuaDEID) local nRet, strRetInfo, factory -- 1. 获取当前登录人员的工厂标识 nRet, factory = m3.GetMyFactory(strLuaDEID) if (nRet ~= 0) then lua.Error(strLuaDEID, debug.getinfo(1), "GetMyFactory失败! " .. factory) end if (factory == "") then nRet, factory = wms_base.Get_sConst2(strLuaDEID, "默认工厂标识") if ( nRet ~= 0 ) then lua.Stop( strLuaDEID, "系统无法获取常量'默认工厂标识'") return end end if (factory == "") then lua.Error(strLuaDEID, debug.getinfo(1), "当前操作人员无法获取所属工厂!") end -- 2. 获取当前工厂下的仓库列表 local strCondition = "S_FACTORY = '" .. factory .. "'" local strOrder = "S_CODE" nRet, strRetInfo = mobox.queryDataObjAttr(strLuaDEID, "Warehouse", strCondition, strOrder, "S_CODE") if (nRet ~= 0) then lua.Error(strLuaDEID, debug.getinfo(1), "获取【仓库】信息失败! " .. strRetInfo) end if (strRetInfo == "") then lua.Error(strLuaDEID, debug.getinfo(1), "当前操作人员所属工厂没定义仓库!") end -- 3. 解析仓库列表 local warehouse = {} local success success, warehouse = pcall(json.decode, strRetInfo) if (success == false) then lua.Error(strLuaDEID, debug.getinfo(1), "非法的JSON格式!" .. warehouse) end -- 4. 组织下拉列表选项 local choic_items = "" local nCount = #warehouse for n = 1, nCount do local attrs = warehouse[n].attrs choic_items = choic_items .. '"' .. attrs[1].value .. '",' end choic_items = lua.trim_laster_char(choic_items) -- 5. 设置窗口中的仓库列表和盘点类型 local action_list = {} local nType = wms_base.Get_nConst(strLuaDEID, "盘点类型-货品盘点") local setAttr = '[{"attr":"S_WH_CODE","value":"","choice_list":[' .. choic_items .. ']},' setAttr = setAttr .. '{"attr":"N_TYPE","value":"' .. nType .. '"}]' local action = {} action.action_type = "set_dlg_attr" action.value = json.decode(setAttr) action_list[1] = action -- 6. 设置界面控件的显示和隐藏 local action = {} action.action_type = "set_dlg_attr_show" local value = {} -- 隐藏 Layout_Location local ctrl_attr = {} ctrl_attr.attr = "Layout_Location" ctrl_attr.show = false value[1] = ctrl_attr -- 显示 Layout_Material local ctrl_attr = {} ctrl_attr.attr = "Layout_Material" ctrl_attr.show = true value[2] = ctrl_attr -- BY KUN 新增容器查询 -- 隐藏 Layout_cntr_code local ctrl_attr = {} ctrl_attr.attr = "Layout_cntr_code" ctrl_attr.show = false value[3] = ctrl_attr action.value = value action_list[2] = action -- 7. 执行动作 lua.Debug(strLuaDEID, debug.getinfo(1), "action_list", action_list) nRet, strRetInfo = mobox.setAction(strLuaDEID, lua.table2str(action_list)) if (nRet ~= 0) then lua.Error(strLuaDEID, debug.getinfo(1), "setAction失败! " .. strRetInfo .. " action = " .. lua.table2str(action_list)) end end